// 给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target ，
// 写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 - 1。
// 二分查找实现
function binarySearch(nums, target) {
  let left = 0;
  let right = nums.length - 1;

  while (left <= right) {
    const mid = Math.floor((left + right) / 2);

    if (nums[mid] === target) {
      return mid; // 找到目标值，返回下标
    } else if (nums[mid] < target) {
      left = mid + 1; // 目标值在右半部分
    } else {
      right = mid - 1; // 目标值在左半部分
    }
  }

  return -1; // 目标值不存在，返回 -1
}
